package pzl.gif.loader;

import android.graphics.Bitmap;
import android.util.Log;

public class Loader {

    /**
     * GifFileType native对象引用地址
     */
    private static long GifFileType;


    public static void init(String filePath) {
        GifFileType = open(filePath);
        Log.i("jinx", "GifFileType native 引用 = " + GifFileType);
    }


    public static int gifWidth() {
        return getWidth(GifFileType);
    }

    public static int gifHeight() {
        return getHeight(GifFileType);
    }

    public static int gifFrameCount() {
        return getFrameCount(GifFileType);
    }

    public static long gifRender(Bitmap bitmap, int frameIndex) {
        return render(GifFileType, bitmap, frameIndex);
    }

    /**
     * 打开git文件
     *
     * @param filePath 本地路径
     * @return
     */
    private static native long open(String filePath);

    private static native int getWidth(long address);

    private static native int getHeight(long address);

    /**
     * 获取gif总帧数
     *
     * @param address
     * @return
     */
    private static native int getFrameCount(long address);

    /**
     * Android java层创建一个空的bitmap,把这个bitmap提交给native层去渲染
     *
     * @param address
     * @param bitmap     java层创建的空bitmap （作为imageview 每帧渲染的图像）
     * @param frameIndex 要渲染的第几帧
     * @return 该帧需要播放延时的时间
     */
    private static native long render(long address, Bitmap bitmap, int frameIndex);

}
